Web API এর মাধ্যমে ডেটা আদান-প্রদান

Web Development - এএসপি ডট (ASP.Net) - Web API তৈরি করা |

ASP.Net Core Web API একটি শক্তিশালী ফ্রেমওয়ার্ক যা ক্লায়েন্ট (যেমন ওয়েব ব্রাউজার, মোবাইল অ্যাপ, বা অন্য কোনো সার্ভিস) এবং সার্ভারের মধ্যে ডেটা আদান-প্রদান করতে ব্যবহৃত হয়। Web API সাধারণত HTTP প্রোটোকল ব্যবহার করে ডেটা পাঠায় এবং গ্রহণ করে। এটি JSON বা XML ফরম্যাটে ডেটা আদান-প্রদান করে।

ASP.Net Core Web API এর মাধ্যমে ডেটা আদান-প্রদান করতে হলে কিছু সাধারণ ধাপ অনুসরণ করতে হয়:

  1. Web API কন্ট্রোলার তৈরি করা
  2. HTTP মেথড (GET, POST, PUT, DELETE) ব্যবহার করে ডেটা আদান-প্রদান করা
  3. Request এবং Response এর জন্য মডেল তৈরি করা

Web API কন্ট্রোলার তৈরি করা

ASP.Net Core অ্যাপ্লিকেশনে Web API কন্ট্রোলার তৈরি করতে হলে, আপনাকে কন্ট্রোলারে ApiController অ্যাট্রিবিউট ব্যবহার করতে হবে। এটি API-কে RESTful কনভেনশন অনুযায়ী পরিচালনা করতে সহায়তা করে।

কন্ট্রোলার তৈরি করা

using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;

namespace MyApp.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class ProductsController : ControllerBase
    {
        private static List<string> products = new List<string> { "Product 1", "Product 2", "Product 3" };

        // GET: api/products
        [HttpGet]
        public ActionResult<IEnumerable<string>> Get()
        {
            return Ok(products); // সমস্ত প্রোডাক্টের তালিকা রিটার্ন করা
        }

        // GET: api/products/1
        [HttpGet("{id}")]
        public ActionResult<string> Get(int id)
        {
            if (id < 0 || id >= products.Count)
            {
                return NotFound(); // ফাইল না পেলে 404 রিটার্ন
            }

            return Ok(products[id]); // নির্দিষ্ট প্রোডাক্ট রিটার্ন করা
        }

        // POST: api/products
        [HttpPost]
        public ActionResult Post([FromBody] string product)
        {
            products.Add(product);
            return CreatedAtAction(nameof(Get), new { id = products.Count - 1 }, product); // নতুন প্রোডাক্ট তৈরি করা
        }

        // PUT: api/products/1
        [HttpPut("{id}")]
        public ActionResult Put(int id, [FromBody] string product)
        {
            if (id < 0 || id >= products.Count)
            {
                return NotFound();
            }

            products[id] = product;
            return NoContent(); // কোনো কন্টেন্ট রিটার্ন না করে 204 রিটার্ন করা
        }

        // DELETE: api/products/1
        [HttpDelete("{id}")]
        public ActionResult Delete(int id)
        {
            if (id < 0 || id >= products.Count)
            {
                return NotFound();
            }

            products.RemoveAt(id);
            return NoContent(); // সফলভাবে মুছে ফেলার পরে 204 রিটার্ন করা
        }
    }
}

এখানে:

  • HttpGet, HttpPost, HttpPut, এবং HttpDelete অ্যাট্রিবিউটগুলো HTTP মেথডগুলোর সাথে মিলে কাজ করে।
  • ActionResult রিটার্ন টাইপটি ব্যবহারকারীর রিকোয়েস্টের সাথে সঠিক HTTP রেসপন্স কড (যেমন 200, 201, 404, 204) রিটার্ন করতে সাহায্য করে।

Request এবং Response এর জন্য মডেল তৈরি করা

কিছু ক্ষেত্রে, ডেটা আদান-প্রদান করতে হলে আপনাকে একটি মডেল তৈরি করতে হতে পারে, যেটি Request এবং Response এর ডেটা স্ট্রাকচার নির্ধারণ করবে।

মডেল ক্লাস তৈরি করা

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

এখন এই মডেল ক্লাসটি API কন্ট্রোলারে ব্যবহার করতে পারবেন।

[HttpPost]
public ActionResult Post([FromBody] Product product)
{
    products.Add(product.Name); // প্রোডাক্টের নাম যোগ করা
    return CreatedAtAction(nameof(Get), new { id = products.Count - 1 }, product); 
}

এখানে, Product মডেলটি JSON ফরম্যাটে Request Body থেকে ডেটা রিসিভ করতে ব্যবহৃত হচ্ছে এবং এটি API-এ পাঠানো ডেটার স্ট্রাকচার নির্ধারণ করছে।


ASP.Net Core Web API কনফিগারেশন

ASP.Net Core অ্যাপ্লিকেশন সেটআপের সময় Startup.cs ফাইলে কিছু কনফিগারেশন করতে হয়, যেমন Web API সেবা নিবন্ধন এবং রাউটিং কনফিগারেশন।

Startup.cs এ কনফিগারেশন করা

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers(); // Web API কন্ট্রোলার সেবা রেজিস্টার করা
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }

    app.UseRouting();

    // Web API রাউটিং কনফিগার করা
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers(); // কন্ট্রোলার রাউটিং
    });
}

এখানে, AddControllers() মেথডটি Web API কন্ট্রোলারের জন্য সেবা নিবন্ধন করে এবং MapControllers() মেথডটি কন্ট্রোলারগুলোর রাউটিং পরিচালনা করে।


ফ্রন্টএন্ড থেকে Web API কল করা

Web API-তে ডেটা পাঠাতে এবং গ্রহণ করতে সাধারণত HTTP Client বা জাভাস্ক্রিপ্টের Fetch API ব্যবহার করা হয়। এখানে একটি উদাহরণ দেখানো হল কিভাবে ফ্রন্টএন্ড থেকে ASP.Net Core Web API কল করা যায়।

JavaScript দিয়ে API কল

fetch('https://localhost:5001/api/products')
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));

HTTP Client (C#) দিয়ে API কল

using System.Net.Http;
using System.Threading.Tasks;

public class ProductService
{
    private readonly HttpClient _httpClient;

    public ProductService(HttpClient httpClient)
    {
        _httpClient = httpClient;
    }

    public async Task GetProducts()
    {
        var response = await _httpClient.GetAsync("https://localhost:5001/api/products");
        var products = await response.Content.ReadAsStringAsync();
        Console.WriteLine(products);
    }
}

এখানে, HttpClient ব্যবহার করে ASP.Net Core Web API এর GET রিকোয়েস্ট পাঠানো হচ্ছে এবং JSON ডেটা রিটার্ন করা হচ্ছে।


সারাংশ

ASP.Net Core Web API ব্যবহারের মাধ্যমে আপনি সার্ভার ও ক্লায়েন্টের মধ্যে ডেটা সহজে আদান-প্রদান করতে পারবেন। API কন্ট্রোলার, HTTP মেথড (GET, POST, PUT, DELETE), এবং ফ্রন্টএন্ড থেকে HTTP কলের মাধ্যমে আপনি সম্পূর্ণ রিসোর্সের ওপর CRUD অপারেশন করতে সক্ষম হবেন। Web API তৈরি করা সহজ এবং এটি মডার্ন ওয়েব অ্যাপ্লিকেশন ও মোবাইল অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য অত্যন্ত কার্যকর।

Content added By
Promotion